package com.hejia.alauda.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.hejia.alauda.entity.BalanceOperation;
import com.hejia.alauda.entity.BonusReceive;
import com.hejia.alauda.entity.Invitation;
import com.hejia.alauda.entity.Product;
import com.hejia.alauda.entity.User;
import com.hejia.alauda.entity.example.BalanceOperationExample;
import com.hejia.alauda.entity.example.BonusReceiveExample;
import com.hejia.alauda.entity.example.InvitationExample;
import com.hejia.alauda.utils.Pager;

public interface ApiService {
	
	/**
	 * 查询日收益列表
	 * @param params
	 * @param pager
	 * @return
	 */
	Pager findInterestPagination(Map<String, Object> params, Pager pager);
	
	/**
	 * 查询总资产里的资产列表
	 * @param user_id
	 * @param pager
	 * @return
	 */
	Pager findInvestmentPagination(Map<String, Object> params,Pager<Map<String,Object>> pager);
	
	/**
	 * 当前收益组成
	 * @param params
	 * @param pager
	 * @return
	 */
	Pager<Map<String,Object>> findCurrentInterestList(Map<String, Object> params,Pager<Map<String,Object>> pager);
	
	/**
	 * 查询v2产品列表
	 * @param params
	 * @param pager
	 * @return
	 */
	List<Product> findProductsPagination(Map<String, Object> params, Pager<Product> pager);
	
	/**
	 * 查询v2产品列表--记录数
	 * @param params
	 * @param pager
	 * @return
	 */
	int findProductsCountPagination(Map<String, Object> params);
	
	/**
	 * 根据条件计算利息总和
	 * @param params
	 * @return
	 */
	String findInterestSum(Map<String, Object> params);
	
	/**
	 * 根据条件查询红包的流水
	 * @param example
	 * @param pager
	 * @return
	 */
	Pager<BalanceOperation> findBalanceOperationsPagination(BalanceOperationExample example, Pager<BalanceOperation> pager);
	
	/**
	 * 积分邀请的列表--根据用户
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> findCreditInvitation(Map<String, Object> params);
	
	/**
	 * 查询用户的资产列表数量
	 * @param params
	 * @return
	 */
	Integer countFinancingByUser(User user);
	
	/********************************以下接口用于2015年红包活动 开始*********************************/
	/**
	 * 保存红包的领取记录
	 * @param entity
	 * @return
	 */
	int saveBonusReceive(BonusReceive entity);
	
	
	/**
	 * 根据查询条件查询红包领取记录
	 * @param example
	 * @param pager
	 * @return
	 */
	List<BonusReceive> findBonusReceiveByExample(BonusReceiveExample example, Pager<BonusReceive> pager);
	
	/**
	 * 查询分享人下领取该分享人分享链接红包的人
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> findReceiver(String mobile);
	
	/**
	 * 查询分享人能够领取的红包明细
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> findRewardAmount(Map<String, Object> params);
	
	/**
	 * 
	 * @param list
	 * @return
	 */
	Map<String, Object> getRewardAmount(String mobile, List<Map<String, Object>> list);
	/********************************以下接口用于2015年红包活动 结束*********************************/
	List<Invitation> findInvitationByExample(InvitationExample example);
	
	
	List<Map<String, Object>> findInvitionWithBouns(Map<String, Object> params);
	
}
